The present invention relates to a file control apparatus for controlling an external memory device in an information processing system, and more particularly, to a file control apparatus for controlling destaging of data from a cache memory to a plurality of disk type memory devices.
Known file control apparatus are generally provided with a disk cache memory which enables a plurality of simultaneous accesses to the same data to increase access performance. The cache memory is usually composed of a semiconductor memory element, which allows for acceptance of a plurality of accesses for data stored in the cache memory. Time spent waiting for positioning of the actuator arm of a magnetic disk or the like is not required when data is stored in the cache memory. As a result, waiting time for the start of data transfer is also eliminated. For these reasons, file control apparatus employing a cache memory have extraordinarily high speed response characteristics.
A conventional memory apparatus 20 is shown in FIG. 10, and includes a file control apparatus 30 and three physical memory devices 21 (indicated separately as 21-1, 21-2 and 21-3). Each physical memory device 21 is provided, for example, with two logical memory devices 50 (indicated separately as 50-1 and 50-2). Also included is a pair of server interface modules (SIFM) 33-1, 33-2, three device interface modules (DIFM) 34-1, 34-2, 34-3, and two access paths 35-1, 35-2 to a cache memory 40. A control unit 31 is also provided in the file control apparatus 30 and includes a memory control 41. Information regarding data in the cache memory 40 is arranged in a cache memory management table 42 in the memory control 41, and indicates the correspondence between the position of data blocks in the physical or logical memory device 21 or 50 in which the relevant data is recorded and the position in the cache memory 40 storing a copy of that data.
A conventional cache memory management table 42 is shown in FIG. 11, and includes block units of data priority information used for management of the cache memory 40. Each block unit represents data stored in the memory devices 50. The data priority information has a format, for example, where the entries (60-x) of the blocks are arranged according to priority.
The capacity of the disk cache memory 40 is smaller than that of the physical (or logical 50) memory devices 21 connected to the file control apparatus 30. Therefore, data stored in the cache memory 40 must replaced as necessary. Replacement is realized by xe2x80x9cruling outxe2x80x9d or xe2x80x9cdestagingxe2x80x9d data stored in the cache memory 40 to the memory devices 21 (or 50) and xe2x80x9creadingxe2x80x9d or xe2x80x9cstagingxe2x80x9d data from the memory devices 21 (or 50) into the cache memory.
For data replacement, least recently used (LRU) system is often used. The LRU system is a control system in which the lowest priority is given to the least recently accessed data and the highest priority is given to the most recently accessed data. Data having the lowest priority is ruled out from the cache memory 40 first. This system is illustrated with reference to the cache memory management table 42 shown in FIG. 11. The left most column shows the current state of the management table 42. If, for example, data of block E of a logical memory device 50-1 is newly stored in the cache memory 40, a new entry 60-1 corresponding to block E is added to the management table 42, as shown at the top of the middle column of the management table 42. As a result, data of block A of the same logical memory device 50-1, which has the lowest priority, is ruled out from the cache memory 40, and the corresponding entry 60-2 (shown at the bottom of the left column) in the cache memory management table 42 is deleted from the management table. The middle column shows the condition of the management table after the data of block A of the logical memory device 50-1 has been ruled out or destaged.
Two kinds of processes are known for ruling-out data from the cache memory 40. The first process involves the file control apparatus 30 only logically invalidating the object data stored in the cache memory 40. The second process involves the file control apparatus 30 logically invalidating the object data stored in the cache memory 40 after storing the data in the memory devices 21 (or 50).
The first ruling-out or destaging process is performed when the contents of the data stored in the cache memory 40 match the contents of the data stored in the memory devices 21 (or 50). This can occur, for example, where the relevant data is never updated after it has been staged, or in the case where the data has been updated after being staged, update is not conducted after an execution of synchronization of data on the cache memory 40 and the corresponding data on the memory devices 21 (or 50). Synchronization of data on the cache memory 40 and the corresponding data on the memory device is typically periodically performed by the file control apparatus 30 and is a process for matching the contents of data on the cache memory 40 and that of the data on the memory device 21 (or 50). Such process is performed by storing the data updated in the cache memory 40 into the logical memory device 50.
The second destaging process is performed when the contents of data stored in the cache memory 40 are different from the contents of data stored in the memory devices 21 (or 50). This condition occurs, for example, when the data on the cache memory 40 is updated after a staging, and synchronization has not yet been performed.
Destaging is sometimes performed even when there is no shortage of empty areas in the cache memory 40. For example, the file control apparatus 30 sometimes periodically rules out the data from the cache memory 40 for improvement of performance of the memory apparatus 20 as a whole.
In another example of data staging and destaging using the LRU system, while referring to FIG. 9, data of block F of the logical memory device 50-2 is newly stored in the cache memory 40, and a new entry 60-3 corresponding to block F is added to the cache memory management table 42 (shown at the top of the right column). As a result, an entry 60-4 corresponding to the data of block B of the same logical memory device 50-2 (the bottom entry in the middle column) is ruled out from the cache memory management table 42 (see the right column), since it has the lowest priority.
As seen in the above examples, destaging is conventionally conducted without considering the position on the memory device 21 (or 50) to which to store the ruled out or destaged data. Therefore, storing of these data to a position in the memory device 21 (or 50) is done at random. As a memory device, a rotating type memory medium such as a magnetic disk device or an optical disk device is often used. Therefore, when accesses to the memory devices are conducted at random, positioning is required for each access, including storing ruled out or destaged data in the memory device. Therefore, much time and resources are consumed every time data is destaged. Destaging often becomes a reason for deterioration of the overall performance of the file control apparatus 30, because it competes with other usual operational accesses from a server or the like.
Accordingly, one object of the present invention is to provide an improved file control apparatus which prevents such deterioration of performance.
Another object of the present invention is to provide an improved apparatus for generating continuous data information indicating data blocks from the same memory device which are updated consecutively in a cache memory.
Yet another object of the present invention is to provide an improved apparatus which destages a plurality of consecutively updated data blocks from the same memory device as a single block.
In keeping with one aspect of this invention, a file control apparatus is adapted to be operatively connected to a host device for controlling external memory devices. The apparatus includes a cache memory for storing data blocks sent to or retrieved from the memory devices by the host device. A control unit controls data transfer between the memory device and the cache memory. A continuous data information generating feature is provided for generating continuous data information indicating whether data blocks from the same memory device are updated consecutively in the cache memory. The control unit stores the consecutively updated data blocks from the same memory device back to that memory device as a single data block.